<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // function Person(name, age) {
    //     console.log(arguments);
    //     if (this.constructor === Person) { // 通过构造函数调用
    //         // {}  
    //         // this -> {}
    //         // this[[Prototype]] = Person.prototype
    //         this.name = name;
    //         this.age = age;
    //         // return this;
    //     } else if (this === window) { //普通函数调用
    //         return new Person(name, age);
    //     }
    // }


    function Person(name, age) {
        // console.log(arguments.callee);  //指向函数本身
        if (this.constructor === arguments.callee) { // 通过构造函数调用
            // {}  
            // this -> {}
            // this[[Prototype]] = arguments.callee.prototype
            this.name = name;
            this.age = age;
            // return this;
        } else if (this === window) { //普通函数调用
            return new arguments.callee(name, age);
        }
    }




    var zhang = Person("张三", 18);  // 作为普通函数调用 
    var lisi = new Person("李四", 18);  // 作为构造函数调用
    console.log(zhang);
    console.log(lisi);




</script>

</html>